package PossiveisJogadas;

import java.util.LinkedList;
import java.util.List;

import util.Constantes;
import Controle.TelaJogo;
import MotorGrafico.Indice;
import MotorGrafico.MotorGrafico;
import MotorGrafico.Tabuleiro;
import MotorRegras.Regras;

public class JogadasRainha {

	public static List<Indice> possiveisJogadas(Indice pecaOrigem, Tabuleiro tabuleiro)
	{
		List<Indice> lista = new LinkedList<Indice>();
		TelaJogo tj = (TelaJogo) MotorGrafico.getInstance().getTela(Constantes.TELA_JOGAR);	
		Regras regras = tj.getJogoLogica().getRegras();
		boolean kamikaze = false;
		int tipoRainha = tabuleiro.getPeca(pecaOrigem.i, pecaOrigem.j);
		int max = 8;
		 for (int n=0; n<max; n++) {  
		     for (int m=0; m<max; m++) {
		    	 int posicaoAlvo = tabuleiro.getPeca(n,m);
		    	 if  (regras.isMovimentoValido(tabuleiro, pecaOrigem , new Indice(n,m), kamikaze)){ 
		    		 if ((tabuleiro.isPecaBranca(tipoRainha)) == (tabuleiro.isPecaNegra(posicaoAlvo)))
		    			 lista.add(new Indice(n,m));
		    		 if ((tabuleiro.isPecaNegra(tipoRainha)) == (tabuleiro.isPecaBranca(posicaoAlvo)))
		    			 lista.add(new Indice(n,m));
		    	 }
		    }
		 }
		
		return lista;
	}

	
}
